package com.example.zyfapplication.base;

import android.content.Context;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.Window;
import android.widget.FrameLayout;

import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;

import com.example.zyfapplication.R;
import com.example.zyfapplication.utils.ActivityUtils;

public abstract class BaseActivity extends AppCompatActivity {

    //如果不需要显示标题，那么这个字段就要写在setContentView 前面
    public static boolean isShowTitle = true;
    private static Context mAppContext;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
        mAppContext = this;
        //程序 activity 整理 添加到 堆里面
        ActivityUtils.addActivity(this);
        setContentView(initLayout());
        //主要是查找控件
        initView();
        //主要是做数据准备
        initPrePar();
        //主要是处理点击事件
        initDate();
        //主要是处理数据返回
        initRequltResult();


    }

    public static Context getAppContext() {
        return mAppContext;
    }

    public abstract int initLayout();


    protected abstract void initView();

    protected abstract void initPrePar();

    protected abstract void initDate();

    protected abstract void initRequltResult();


    @Override
    protected void onStart() {
        super.onStart();

    }

    @Override
    protected void onResume() {
        super.onResume();
        //这个地方 是每次进来都要刷新的操作
    }


    //重新布局文件，加载自己做的布局
    @Override
    public void setContentView(int layoutResID) {

        if (isShowTitle) {
            //如果是要显示标题的
            View view = getLayoutInflater().inflate(R.layout.activity_base, null);
            //设置填充activity_base布局
            super.setContentView(view);
            if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
                view.setFitsSystemWindows(true);
            }
            //加载子类Activity的布局
            initDefaultView(layoutResID);
        } else {
            //如果不需要显示标题的
            super.setContentView(layoutResID);
        }


    }

    private void initDefaultView(int layoutResId) {
        FrameLayout container = (FrameLayout) findViewById(R.id.fl_base_show);
        View childView = LayoutInflater.from(this).inflate(layoutResId, null);
        container.addView(childView, 0);
    }


    @Override
    protected void onDestroy() {
        super.onDestroy();
        ActivityUtils.removeActivity(this);
    }
}
